package org.ch03.job.test05;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * @author XCH
 * @date 2025 - 03 - 28
 */
public class MainTest {
//    public static void main(String[] args) throws Exception {
//        Student stu = Student.class.getConstructor().newInstance();
//        Method[] methods = Student.class.getMethods();
//
//        for (Method method : methods) {
//            if (method.getName().startsWith("set")) {
//                Class<?>[] paramTypes = method.getParameterTypes();
//                if (paramTypes.length == 1) {
//                    if (paramTypes[0] == String.class) {
//                        method.invoke(stu, "张三");
//                    } else if (paramTypes[0] == int.class) {
//                        method.invoke(stu, 18);
//                    }
//                }
//            }
//        }
//        Student stu2 = new Student("李四", 17);
//
//        checkAgeRestriction(stu);
//        checkAgeRestriction(stu2);
//    }
//    private static void checkAgeRestriction(Student student) {
//        Class<?> clazz = student.getClass();
//        if (clazz.isAnnotationPresent(AgeRestriction.class)) {
//            AgeRestriction annotation = clazz.getAnnotation(AgeRestriction.class);
//            if (student.getAge() < annotation.min()) {
//                System.out.println(student.getName() + ": 年龄不符合要求 (最小要求: " + annotation.min() + ")");
//            } else {
//                System.out.println(student.getName() + ": 年龄符合要求");
//            }
//        } else {
//            System.out.println(student.getName() + ": 没有年龄限制注解");
//        }
//    }
    public static void main(String[] args) {
        try {
           Student stu = new Student("张三", 20);
           System.out.println(stu);
           Student stu2 = new Student("李四", 17);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
